﻿// Decompiled with JetBrains decompiler
// Type: UnityEngine.Scripting.APIUpdating.MovedFromAttribute
// Assembly: UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: E6AE6B5A-2752-4B07-9528-C8B77C62CE79
// Assembly location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll
// XML documentation location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.xml

using System;

#nullable disable
namespace UnityEngine.Scripting.APIUpdating
{
  [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Interface | AttributeTargets.Delegate)]
  public class MovedFromAttribute : Attribute
  {
    internal MovedFromAttributeData data;

    public MovedFromAttribute(
      bool autoUpdateAPI,
      string sourceNamespace = null,
      string sourceAssembly = null,
      string sourceClassName = null)
    {
      this.data.Set(autoUpdateAPI, sourceNamespace, sourceAssembly, sourceClassName);
    }

    public MovedFromAttribute(string sourceNamespace) => this.data.Set(true, sourceNamespace);

    internal bool AffectsAPIUpdater => !this.data.classHasChanged && !this.data.assemblyHasChanged;

    public bool IsInDifferentAssembly => this.data.assemblyHasChanged;
  }
}
